package com.zynn.api.yinian.zuul.constant;

import org.springframework.util.AntPathMatcher;
import org.springframework.util.PathMatcher;

import java.util.ArrayList;
import java.util.List;


/**
 * @author admin
 *
 * 地址集合
 */
public class UrlConstant {


    /**
     * 放行登陆 接口
     *
     * 需要被登录拦截器拦截APi Url
     */
    public static final List<String> PASS_SERVLET_PATHS = new ArrayList<String>() {{
        add("/api/user/manage/login/**");
        add("/api/user/manage/openid/login/**");
        add("/api/user/manage/parseAfter/login/**");
        add("/api/user/manage/account/login");
    }};


    /**
     * 初始化不需要被zuul拦截过滤的接口
     */
    public static final List<String> PASS_NO_AUTHS = new ArrayList<String>() {{
        add("/api/es/**");
        add("/api/recommend/**");
        add("/api/message/**");
        //关注
        add("/api/user/attention/relation/save");
        //取消关注  目的是给马甲号开启后门
        add("/api/user/attention/relation/delete");
        add("/api/system/event/comment/find/event/comments");
        add("/api/system/key/path");
    }};

    /**
     * 匹配查看路径是否匹配
     *
     * @param paths       路径
     * @param servletPath 请求的路径
     * @return true表示可以匹配上
     */
    public static boolean matchPath(List<String> paths, String servletPath) {
        PathMatcher pathMatcher = new AntPathMatcher();
        for (String passServletPath : paths) {
            //判断路径是否匹配
            boolean match = pathMatcher.matchStart(passServletPath, servletPath);
            if (match) {
                //如果有一个匹配的 就跳出
                return true;
            }
        }
        return false;
    }

}
